package com.qc.dao;

import java.util.List;

import com.qc.entity.OrderAlipayCallBackEntity;
import com.qc.entity.OrderBillEntity;
import com.qc.entity.OrderCommentEntity;
import com.qc.entity.OrderEntity;
import com.qc.entity.OrderEntityVo;
import com.qc.entity.OrderScheduleEntity;
import com.qc.entity.info.MyOrderInfo;

public interface OrderDao {

	//添加订单
	long addOrder(OrderEntity entity);
	
	//查询订单信息根据订单号
	OrderEntity getOrderByOrderNumber(String orderNumber);
	
	//根据自增长id修改订单为支付状态
	long updateOrderIsPay(long orderId, int payType);
	
	//日志表增加记录
	long addOrderPayLog(OrderAlipayCallBackEntity entity);
	
	//订单发票
	long addOrderBill(OrderBillEntity entity);
	
	//查询我的订单 state: 1表示拿BOSS的我的聘单， 2表示拿秘书的我的约单
	List<OrderEntity> getAllMyOrder(MyOrderInfo orderInfo, long userId);
	
	//秘书接单，order_state改为1
	long updateOrderState(int orderState,long orderId);
	
	//查询2个人的订单关系
	OrderEntity getBothOrderInfo(OrderEntity entity);
	
	//添加订单行程
	long addOrderSchedule(OrderScheduleEntity entity);
	
	//根据日期查询行程
	List<OrderScheduleEntity> getScheduleByOrderIdAndDate(OrderScheduleEntity entity);
	
	//取消订单
	long cancelOrder(long orderId);
	
	//添加订单评价
	long addOrderComment(OrderCommentEntity entity);
	
	//修改订单为已评价状态
	long updateOrderIsComment(long orderId);
	
	//根据订单ID查看订单评价
	List<OrderCommentEntity> getOrderCommentByOrderId(long orderId);
	
	//根据订单ID获取订单详情，包含发票，支付时间
	OrderEntity getOrderDetailByOrderId(long orderId);
	
	//根据秘书用户ID查询这个秘书所有的订单
	List<OrderEntity> getSecretaryBySecUserId(long userId);
	
	//获取所有订单
	List<OrderScheduleEntity> getAllOrderByDate(String startTime, String endTime);
	
	//获取所有订单 开始时间 和 结束时间
	List<OrderEntity> getAllOrderTime(String startDate,String endDate);
	
	//修改订单状态
	void updateOrderState(String orderId,String orderState);
	
	//修改订单行程推送状态 is_push
	void updateOrderSchedulePush(long orderScheduleId);
	
	/****************PC 订单查询**************************/
	
	//所有订单列表总数
    int getListOrderCount(String bNickName,String mNickName,String orderNumber,String orderState,String isPay);
    
    //所有订单列表
    @SuppressWarnings("rawtypes")
    List getAllOrder(String bNickName,String mNickName,String orderNumber,String orderState,String isPay,int pageNo,int pageSize);

    //根据订单id 查询 详细
    OrderEntityVo getOrderId(String orderId);
    
    //根据订单查询行程
    List getOrderScheduleId(String orderId);
}   
